iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 3
0
Modern Web

初探 Laravel 5 三兩事系列 第 3

Day3 Laravel Router

  • 分享至 

  • xImage
  •  

Day3 Laravel Router

Laravel 有提供很方便的route,先比較codeigniter和laravel的差異。

codeigniter route

codeigniter 所提供的route 大致上長這樣

$route['blog/create'] = 'blog/create';
$route['blog/list'] = 'blog/list';
$route['blog/del/(:id)']  = 'blog/del/$1';

但是有些客戶可能會覺得他們要下關鍵字廣告或SEO所以URL的路徑要按照他們的規則,或者是因爲一些奇妙的原因需要更換網址後綴的詞,而去改動所有view的url,這很辛苦,所以之後繼承codeigniter的CI_Router複寫原有的功能,他有個別名的功能。

別名版本的 codeigniter route

$route['blog/create']  = ['blog/create', 'blog-create-post'];
$route['blog/list']  = ['blog/list', 'blog-list'];
$route['blog/del/(:id)']  = ['blog/del/$1', 'blog-del'];

並且增加在controller中 router呼叫 別名的功能。

$this->router->getAlertUrl('blog-list', [] );

laravel route

基本上大部分需要的功能都幫你做好好的了,也不太需要寫些什麼就可以使用。

laravel 所提供的route 大致上長這樣

Route::post('/blog/create', "BlogController@create" )->name( 'Blog.create');
Route::get('/blog/list', "BlogController@list" )->name( 'Blog.list');
Route::get('blog/del/{id?}', "BlogController@del" )->name( 'Blog.del');

呼叫router 只需要使用redirect() 即可

return redirect()->route("Blog.create");

額外常用其他功能

  1. Route::group 可以做到群租的功能
  2. prefix 可以做到常用的前綴,通常配合group使用
  3. Middleware 可以掛進去 處理額外的權限或者時間檢查的處理
  4. domain 可以判別所屬的domain進行過濾

類似這樣 可以整組掛進去 group 並且設定prefix 以及 middleware

Route::group([ 'prefix' => 'admin' , 'middleware' => 'auth:admin'  ], function () {
    Route::post('/blog/create', "BlogController@create" )->name( 'Blog_create');
    Route::get('/blog/list', "BlogController@list" )->name( 'Blog_list');
    Route::get('blog/del/{id?}', "BlogController@del" )->name( 'Blog_del');

});

domain 範例

Route::group(  [  'domain' => 'www.' .  'abcdefg.com'  ] , function(){
......
});

結語

基本上 Laravel 的route用起來相當的方便,文件也是相當詳細,用起來真的快速又方便。


上一篇
Day2 建立環境
下一篇
Day 4 Laravel Middleware
系列文
初探 Laravel 5 三兩事8
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言